The present invention relates to computer security techniques, and more particularly, but not exclusively, relates to techniques to provide more secure outsourcing of computations.
Rapid growth in the area of computer technology, including networking schemes like the internet, has facilitated the transmission of data from a processing system at one site (the customer) to another site (the agent) to perform certain computations. Such “outsourcing” of certain computations may be desired, for example, when the customer lacks the hardware resources, software resources, or other know-how to cost-effectively perform the computations.
In one example, outsourcing is utilized in the financial services industry, where, for instance, the customer data includes projections of the likely future evolution of certain commodity prices, interest and inflation rates, economic statistics, portfolio holdings, etc. In another example, outsourcing is utilized in the energy services industry, where the proprietary data is typically seismic, and can be used to estimate the likelihood of finding oil or gas at a particular geographic spot in question. The seismic data may be so massive that the performance of corresponding matrix multiplication and inversion computations would be beyond the resources of most major oil companies. Many other industries can also benefit from outsourcing.
With the advent of computational outsourcing, concerns regarding the agent's misappropriation of customer data or the computational results have arisen. These concerns arise not only with the customer, but also with an agent who wants to reduce the risk of misappropriation by its employees. One proposed scheme is to utilize standard cryptographic techniques to encrypt the data sent by the customer to the agent. While encryption may enhance security with respect to an attacking third party, it still requires that the agent have access to at least some of the cryptographic information, such as encryption/decryption keys, to perform a meaningful calculation. As a result, this scheme still provides the agent ready access to the actual data. Moreover, such schemes assume the agent will be a permanent repository of the data, performing certain operations on it and maintaining certain predicates. In many instances, this situation is also undesirable. Thus, there is a demand for techniques to improve the security of outsourced computations.